/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Modelo;

import Controle.Controlador;
import java.sql.ResultSet;
import java.util.ArrayList;

/**
 *
 * @author Andre Luiz
 */
public class Pizza {
    
    private ArrayList<Sabor> sabores = new ArrayList<>();
    Integer codigo_pedido;
    Integer codigo_sabor_1 ;
    Integer codigo_sabor_2 ;
    Integer codigo_sabor_3 ;
    Integer codigo_sabor_4 ;
    Float valor;
    Integer codigo_pizza_pedido;
     

    public Pizza() {
    }

    public Pizza(Integer codigo_pedido, Integer codigo_sabor_1, Integer codigo_sabor_2, Integer codigo_sabor_3, Integer codigo_sabor_4, Float valor, Integer codigo_pizza_pedido) {
        this.codigo_pedido = codigo_pedido;
        this.codigo_sabor_1 = codigo_sabor_1;
        this.codigo_sabor_2 = codigo_sabor_2;
        this.codigo_sabor_3 = codigo_sabor_3;
        this.codigo_sabor_4 = codigo_sabor_4;
        this.valor = valor;
        this.codigo_pizza_pedido = codigo_pizza_pedido;
    }
    
    public void setParametrosInterno(int codigo_pedido){
        this.codigo_sabor_1 = null;
        this.codigo_sabor_2 = null;
        this.codigo_sabor_3 = null;
        this.codigo_sabor_4 = null;
        for (int i = 0; i < sabores.size(); i++) {
            if(i==0){
                this.codigo_sabor_1 = sabores.get(i).getCodigo();
            }
            if(i==1){
                this.codigo_sabor_2 = sabores.get(i).getCodigo();
            }
            if(i==2){
                this.codigo_sabor_3 = sabores.get(i).getCodigo();
            }
            if(i==3){
                this.codigo_sabor_4 = sabores.get(i).getCodigo();
            }
            
        }
        this.valor = getValorPizza();
        this.codigo_pedido = codigo_pedido;
    }

    public Integer getCodigo_pedido() {
        return codigo_pedido;
    }

    public void setCodigo_pedido(Integer codigo_pedido) {
        this.codigo_pedido = codigo_pedido;
    }

    public Integer getCodigo_pizza_pedido() {
        return codigo_pizza_pedido;
    }

    public void setCodigo_pizza_pedido(Integer codigo_pizza_pedido) {
        this.codigo_pizza_pedido = codigo_pizza_pedido;
    }

    public Integer getCodigo_sabor_1() {
        return codigo_sabor_1;
    }

    public void setCodigo_sabor_1(Integer codigo_sabor_1) {
        this.codigo_sabor_1 = codigo_sabor_1;
    }

    public Integer getCodigo_sabor_2() {
        return codigo_sabor_2;
    }

    public void setCodigo_sabor_2(Integer codigo_sabor_2) {
        this.codigo_sabor_2 = codigo_sabor_2;
    }

    public Integer getCodigo_sabor_3() {
        return codigo_sabor_3;
    }

    public void setCodigo_sabor_3(Integer codigo_sabor_3) {
        this.codigo_sabor_3 = codigo_sabor_3;
    }

    public Integer getCodigo_sabor_4() {
        return codigo_sabor_4;
    }

    public void setCodigo_sabor_4(Integer codigo_sabor_4) {
        this.codigo_sabor_4 = codigo_sabor_4;
    }

    public Float getValor() {
        return valor;
    }

    public void setValor(Float valor) {
        this.valor = valor;
    }
    
    public Float getValorPizza(){
        Float valorPizza=null;
        if(sabores==null)
            return null;
        
        for (int i = 0; i < sabores.size(); i++) {
            if((valorPizza==null)||(valorPizza < sabores.get(i).getCategoria().getValor())){
                valorPizza = sabores.get(i).getCategoria().getValor();
            }
        }
        return valorPizza;
    }
    
    public String getToStringProduto(){
        return "Pizza "+getTamanhoPizza()+" Sabores: "+getSaboresPizza();
    }
    
    public String getTamanhoPizza(){
        if(sabores==null)
            return null;
        
        return sabores.get(0).getCategoria().getTamanho();
    }
    
    public String getSaboresPizza(){
        String aux="";
        if(sabores==null)
            return null;
        
        for (int i = 0; i < sabores.size(); i++) {
            if((i+1)==sabores.size())
                aux = aux + sabores.get(i).getNome().toString() + " ";
            else
                aux = aux + sabores.get(i).getNome().toString() + ", ";
        }
        return aux;
    }

    public ArrayList<Sabor> getSabores() {
        return sabores;
    }

    public void setSabores(ArrayList<Sabor> sabores) {
        this.sabores = sabores;
    }

    public static Integer parseInt(String s)  {
        try {
            return Integer.parseInt(s);
        } catch (Exception e) {
            return null;
        }
    }

    @Override
    public String toString() {
        return "Pizza{" + "codigo_pedido=" + codigo_pedido + ", codigo_sabor_1=" + codigo_sabor_1 + ", codigo_sabor_2=" + codigo_sabor_2 + ", codigo_sabor_3=" + codigo_sabor_3 + ", codigo_sabor_4=" + codigo_sabor_4 + ", valor=" + valor + ", codigo_pizza_pedido=" + codigo_pizza_pedido + '}';
    }

    public String toStringSQL_Insert() {
        return "\"ItemPizzaPedido\"{" + "codigo_pedido=" + codigo_pedido + ", codigo_sabor_1=" + codigo_sabor_1 + ", codigo_sabor_2=" + codigo_sabor_2 
                + ", codigo_sabor_3=" + codigo_sabor_3 + ", codigo_sabor_4=" + codigo_sabor_4 + ", valor=" + valor +  ",}";
    }
    
    public String toStringSQL_Update() {
        return "\"ItemPizzaPedido\"{" + "codigo_pedido=" + codigo_pedido + ", codigo_sabor_1=" + codigo_sabor_1 + ", codigo_sabor_2=" + codigo_sabor_2 
                + ", codigo_sabor_3=" + codigo_sabor_3 + ", codigo_sabor_4=" + codigo_sabor_4 + ", valor=" + valor +  ",}";
    }
    
    public boolean setALL(ResultSet rs, boolean nextInicial){
        try {
            if(nextInicial)
                rs.next();
            
            this.codigo_pedido = rs.getInt("codigo_pedido");
            this.codigo_sabor_1 = parseInt(rs.getString("codigo_sabor_1"));
            this.codigo_sabor_2 = parseInt(rs.getString("codigo_sabor_2"));
            this.codigo_sabor_3 = parseInt(rs.getString("codigo_sabor_3"));
            this.codigo_sabor_4 = parseInt(rs.getString("codigo_sabor_4"));
            this.valor = rs.getFloat("valor");
            this.codigo_pizza_pedido = rs.getInt("codigo_pizza_pedido");
            
            if(this.codigo_sabor_1!=null){
                Sabor sabor = Controlador.carregarDadosBD_Sabor(this.codigo_sabor_1);
                sabores.add(sabor);
            }
            if(this.codigo_sabor_2!=null){
                Sabor sabor = Controlador.carregarDadosBD_Sabor(this.codigo_sabor_2);
                sabores.add(sabor);
            }
            if(this.codigo_sabor_3!=null){
                Sabor sabor = Controlador.carregarDadosBD_Sabor(this.codigo_sabor_3);
                sabores.add(sabor);
            }
            if(this.codigo_sabor_4!=null){
                Sabor sabor = Controlador.carregarDadosBD_Sabor(this.codigo_sabor_4);
                sabores.add(sabor);
            }
            
            return true;
       } catch (Exception ex) {
           ex.printStackTrace();
           System.out.println(ex.getMessage());
           return false;
       }
    }
     
    
}
